Array.prototype._reduce = function (Fn, init) {
  const arr = this;
  const len = arr.length;

  if (!init) init = null;
  for (let i = 0; i < len; i++) {
    if (arr[i]) {
      init = Fn.call(arr, init, arr[i], i, arr);
    }
  }
  return init;
};

console.log([1, 2, 3]._reduce((left, right) => left + right));

console.log([1, 2, 3].reduce((left, right) => left + right));

[].reduce((pre, cur, idx, array), init);
